/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI.TOOL;

/**
 *
 * @author Khôi
 */
import POJO.CauHinh;
import java.io.*;
import java.util.Scanner;
import java.util.StringTokenizer;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

//import tjacobs.io.InfoFetcher.FetcherListener;
/**
 * IOUtils class
 *
 * This is an important class that I use a lot.<p> has a lot of static
 * utilities. Most should be fairly self-explanatory
 */
public class IOUtils {

	/**
	 * Phương thức dùng đọc 1 tập tin rồi in ra màn hình
	 *
	 * @param filename: là tập tin cần đọc
	 */
	public void IOUtils() {
	}

	private void ReadFile(String filename) {
		try {
			//tạo luồng nối đến tập tin
			FileInputStream is = new FileInputStream(filename);
			//Dùng phương tiện Scanner để đọc
			Scanner input = new Scanner(is, "UTF-8");//đọc theo bảng mã utf-8
			//Đọc tệp tin
			int i = 1;
			//trong khi còn dòng để đọc
			while (input.hasNextLine()) {
				//Đọc 1 dòng
				String line = input.nextLine();
				//in ra màn hình
				System.out.println((i++) + ". " + line);
			}
			//đóng luồng
			is.close();
			input.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public int ReadFile(String filename, CauHinh ch) throws IOException {
		try {
			//tạo luồng nối đến tập tin
			FileInputStream is = new FileInputStream(filename);
			//Dùng phương tiện Scanner để đọc
			Scanner input = new Scanner(is, "UTF-8");//đọc theo bảng mã utf-8
			//Đọc tệp tin
			int i = 1;
			//trong khi còn dòng để đọc
			//			String str1[] = new String[10];
			while (input.hasNextLine()) {
				//Đọc 1 dòng
				String line = input.nextLine();
				//in ra màn hình
				line = line.trim();
				String[] tmp = line.split("\t");
				if (tmp.length == 2) {
					if (tmp[0].toString().trim().equals("ServerName")) {
						ch.setServer(tmp[1].toString().trim());
					}
					if (tmp[0].toString().trim().equals("Port")) {
						ch.setPort(tmp[1].toString().trim());
					}
					if (tmp[0].toString().trim().equals("DatabaseMaster")) {
						ch.setMasster(tmp[1].toString().trim());
					}
					if (tmp[0].toString().trim().equals("DatabaseName")) {
						ch.setDatabase(tmp[1].toString().trim());
					}
					if (tmp[0].toString().trim().equals("User")) {
						ch.setUser(tmp[1].toString().trim());
					}
					if (tmp[0].toString().trim().equals("Pass")) {
						ch.setPass(tmp[1].toString().trim());
					}
					if (tmp[0].toString().trim().equals("Path")) {
						ch.setPath(tmp[1].toString().trim());
					}
				}
			//	System.out.println((i++) + ". " + line);
			}

			//đóng luồng
			is.close();
			input.close();
			return 1;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return 0;
	}

	/**
	 * Phương thức này dùng để ghi dữ liệu vào file
	 *
	 * @param fileName: là file cần ghi
	 */
	private void Write2File(String fileName) throws IOException {
		//Tạo luồng xuất
		FileOutputStream out = new FileOutputStream(fileName);
		//Tạo thiết bị viết
		PrintWriter output = new PrintWriter(out, true);//auto flush
		//ghi 1 chuỗi ra file
		output.println("Nội dung cần lưu xuống file...");
		//sau khi làm việc xong, nhớ đóng luồng
		out.close();
		output.close();
	}

	public void Write2File(String fileName, CauHinh ch) throws IOException {
		//Tạo luồng xuất
		FileOutputStream out = new FileOutputStream(fileName);
		//Tạo thiết bị viết
		PrintWriter output = new PrintWriter(out, true);//auto flush
		//ghi 1 chuỗi ra file
		//output.println("Nội dung cần lưu xuống file...");

		String str1[] = new String[10];
//			String str2[] = new String[10];
		str1[0] = "ServerName" + "\t" + ch.getServer();
		str1[1] = "Port" + "\t" + ch.getPort();
		str1[2] = "DatabaseMaster" + "\t" + ch.getMasster();
		str1[3] = "DatabaseName" + "\t" + ch.getDatabase();
		str1[4] = "User" + "\t" + ch.getUser();
		str1[5] = "Pass" + "\t" + ch.getPass();
		str1[6] = "Path" + "\t" + ch.getPath();
		for (int i = 0; i < 7; i++) {
			output.println(str1[i].toString());
		}

		//sau khi làm việc xong, nhớ đóng luồng
		out.close();
		output.close();
	}

	private void ham() throws FileNotFoundException, IOException {
		String[] header = {"id", "ho ten"};
		DefaultTableModel dtm = new DefaultTableModel(header, 0);//tiêu đề và 0 dòng
		JTable tbl = new JTable(dtm);

		FileInputStream fi = new FileInputStream("file.xls");
		Scanner sc = new Scanner(fi);
		while (sc.hasNextLine()) {
			String line = sc.nextLine();
			StringTokenizer stz = new StringTokenizer(line, ";");//cắt theo dấu ;
			String[] row = {stz.nextToken(), stz.nextToken()};
			//hoặc ta có thể dùng String []rows=line.split(";"); thay cho 2 dòng trên
			dtm.addRow(row);
		}
		fi.close();
	}
//	public static void main(String arg[]) {
//		try {
//			IOUtils tmp = new IOUtils();
//
//			String str1[] = new String[10];
//			String str2[] = new String[10];
////			str1[0] = "ServerName";
////			str2[0] = "jdbc:sqlserver://localhost:1433;databaseName=";
////
////			str1[1] = "DatabaseMaster";
////			str2[1] = "master";
////
////			str1[2] = "DatabaseName";
////			str2[2] = "QLBH";
////
////			str1[3] = "User";
////			str2[3] = "nhom1";
////
////			str1[4] = "Pass";
////			str2[4] = "123";
////
////			str1[5] = "Path";
////			str2[5] = "C:\\QLBH.bak";
//
//			tmp.ReadFile("test.ini", str1, str2);
//			//tmp.ReadFile("test.ini", str1, str2);
//
//		} catch (IOException e) {
//		}
//	}
}